草庐IT

NIO 缓冲区

全部标签

C Windows 缓冲区大小

假设我在Windows中使用recv函数从套接字接收数据。我很好奇最佳缓冲区有多大?我可以将其设置为1024字节,也可以将其设置为51200字节或更大。我想知道哪个对性能更好。这不仅适用于recv函数,假设我正在读取一个大文本文件,我需要一个非常大的缓冲区还是一个较小的缓冲区? 最佳答案 操作系统执行自己的缓冲,因此缓冲区的大小并不重要。性能损失在于函数调用:1字节缓冲区将是低效的,因为它需要对recv()的调用太多。缓冲区太大只是浪费空间。最佳大小大约是您希望在单个recv()调用中接收或处理的数据大小的两倍,下限约为1或2tcp

c++ - 是否可以使用内存缓冲区(或 PE 资源)来支持只读 SQLite 数据库?

我想使用Windows的“自定义资源”功能将存储在SQLite数据库中的相当大的数据block嵌入到我的二进制文件中。(这是一个日志记录工具的白名单)SQLite确实支持inmemorydatabases,但看起来这可能仅限于创建全新的数据库;并且似乎不支持从内存缓冲区读取;但我并不肯定。数据库是否支持这样的东西?(由于其他原因我必须嵌入SQLite,所以将它用于白名单也很棒......) 最佳答案 sqlite文档在线备份部分http://www.sqlite.org/backup.html有一些代码可以做你想做的事(即将内存数据

windows - 使用 Windows 线程时,是否可以指定一个缓冲区用于线程的堆栈,类似于 pthread_attr_setstack()?

pthreads允许用户提供一block内存用于线程堆栈:size_tstack_size=1024*1024*4;void*stack=malloc(stack_size);pthread_attr_tattributes;pthread_attr_init(&attributes);pthread_attr_setstack(&attributes,stack,stack_size);pthread_tthread_id;pthread_create(&thread_id,&attributes,worker_function,NULLWindows线程是否提供类似的功能?Crea

c - 修改windows中套接字缓冲区大小的默认值

在socket编程中,当RAM大于19MB时,SO_SNDBUF和SO_RCVBUF的默认值为8192字节。现在,我想更改套接字的套接字缓冲区大小。我知道一种方法是使用setsockopt。但是,我想对系统默认值应用更改,并能够为我在系统中创建的所有套接字使用套接字缓冲区的修改值。请告诉我在windows平台上在哪里进行配置更改? 最佳答案 这里有一个关于它如何工作的描述:http://smallvoid.com/article/winnt-winsock-buffer.html解决方案应该是:[HKEY_LOCAL_MACHINE

c++ - 确定 IWICStream 缓冲区中已用内存的大小

我有VirtualAlloc()的10MB内存块并初始化了IWICStream与它一起使用IWICStream::InitializeFromMemory().我将PNG编码到IWICStream中,但我不知道PNG数据占用了多少内存。如何确定IWICStream缓冲区的有效/已用大小? 最佳答案 IWICStream继承IStream。标准技巧是使用IStream::Seek(),在写入图像后指定STREAM_SEEK_CUR。*plibNewPosition参数为您提供长度。 关于c

python - Enthought Canopy 中的 IPython 缓冲区和分页

我在Windows7上使用Enthought的PythonCanopy0.9.1测试版分发版。如何增加IPython缓冲区的大小。另外,我如何通过分页器管道命令的输出;输出当前未分页。如果现有答案如Howtoincreasetheipythonqtconsolescrollbackbufferlimit或HowtousePipeinipython会工作,我不知道如何将它们应用到Windows。谢谢! 最佳答案 目前没有首选项或配置选项来增加当前的缓冲区限制,但您可以使用以下代码创建一个宏并运行它。defrun():code_task

windows - Windows 命令解释器中历史缓冲区的押韵或原因?

当我在像bash这样的shell中时,如果我使用向上箭头浏览命令行历史缓冲区,它会以一种可预测的方式运行:向上点击转到我最近执行的命令。在Windowscmd.exe(“DOS”)shell中,有时点击向上箭头会转到最近的命令,有时会转到第二个最近的命令,甚至是第三个最近的命令。有时,要获得我最近输入的命令,我实际上必须点击向下箭头!有时我必须按两次向下箭头!这是什么逻辑?很长一段时间以来,它一直让我抓狂。 最佳答案 向上/向下箭头选择的命令是相对于最后选择的重复。所以如果你已经执行了line1line2line3line4然后按3

c++ - Windows下4K截屏直接存入缓冲区

我知道网络上有很多帖子使用GDI或DirectX方法在Windows中进行屏幕捕获。但是,我发现的所有内容都将捕获的图像保存到位图中,而我想将其保存到缓冲区中。这是我以GDi方式执行此操作的代码:HWNDhwind=GetDesktopWindow();HDChdc=GetDC(hwind);uint32_tresx=GetSystemMetrics(SM_CXSCREEN);uint32_tresy=GetSystemMetrics(SM_CYSCREEN);uint32_tBitsPerPixel=GetDeviceCaps(hdc,BITSPIXEL);HDChdc2=Creat

c++ - GetCurrentDirectory 缓冲区未返回正确的值

我对GetCurrentDirectory()有疑问,我不太明白为什么。我不明白的是它适用于XP但不适用于7(或至少在我的计算机上)。这是我的代码:chardir_name[1024];//asaglobalvariableintget_files(){//...DWORDdwRet;dwRet=GetCurrentDirectory(MAX_PATH,dir_name);printf("%s\n",dir_name);printf("%d\n",dwRet);//...}此代码将返回:printf("%s\n",dir_name);->return"c"printf("%d\n",d

windows - 如何获取 MediaCapture 的预览缓冲区 - 通用应用程序

在Windowsphonesilverlight中,我在开始预览视频时使用PhotoCamera获取缓冲区帧,在通用应用程序中我使用MediaCapture代替,但我不知道如何获取预览缓冲区。谢谢 最佳答案 由于Windows运行时没有Silverlight的PhotoCaptureDevice类,因此非常有用的GetPreviewBufferARGB()和GetPreviewBufferYCbCr()方法不可用。您正在寻找的解决方案是使用MediaCapture.StartPreviewToCustomSinkAsync()方法,